#include <asm/page.h>
/*#include <asm/pgtable.h>*/
+#ifdef CONFIG_X86_IO_APIC
+
#include "acpitable.h"
static acpi_table_handler acpi_boot_ops[ACPI_TABLE_COUNT];
printk("Enabling the CPU's according to the ACPI table\n");
}
}
+
+#endif /* CONFIG_X86_IO_APIC */
#include <asm/mpspec.h>
#include <asm/pgalloc.h>
#include <asm/hardirq.h>
-
+#include <asm/apic.h>
#include <xeno/ac_timer.h>
-
#include <xeno/perfc.h>
#undef APIC_TIME_TRACE
connect_bsp_APIC();
- cpu_online_map = phys_cpu_present_map = 1;
+#ifdef CONFIG_SMP
+ cpu_online_map = 1;
+#endif
+ phys_cpu_present_map = 1;
apic_write_around(APIC_ID, boot_cpu_physical_apicid);
apic_pm_init2();
and $0x7f,%ecx /* disable GLOBAL bit */
mov %ecx,%cr4
+#ifdef CONFIG_SMP
/* Is this a non-boot processor? */
cmp $(SECONDARY_CPU_FLAG),%ebx
jne continue_boot_cpu
call start_paging
lidt idt_descr
jmp initialize_secondary
+#endif
continue_boot_cpu:
add $__PAGE_OFFSET,%ebx
#include <asm/desc.h>
#include <asm/smpboot.h>
+#ifdef CONFIG_X86_IO_APIC
static unsigned int nmi_watchdog; /* XXXX XEN */
check_timer();
print_IO_APIC();
}
+
+#endif /* CONFIG_X86_IO_APIC */
#include <asm/io.h>
#include <xeno/irq.h>
#include <xeno/smp.h>
+#include <asm/apic.h>
#include <asm/mpspec.h>
#include <asm/pgalloc.h>
#include <asm/smpboot.h>
*/
#include <linux/types.h>
-/*#include <linux/kernel.h>*/
+#include <linux/lib.h>
#include <linux/pci.h>
#include <linux/init.h>
#include <linux/ioport.h>
identify_cpu(&boot_cpu_data); /* get CPU type info */
if ( cpu_has_fxsr ) set_in_cr4(X86_CR4_OSFXSR);
if ( cpu_has_xmm ) set_in_cr4(X86_CR4_OSXMMEXCPT);
+#ifdef CONFIG_SMP
find_smp_config(); /* find ACPI tables */
smp_alloc_memory(); /* trampoline which other CPUs jump at */
+#endif
paging_init(); /* not much here now, but sets up fixmap */
+#ifdef CONFIG_SMP
if ( smp_found_config ) get_smp_config();
+#endif
domain_init();
- scheduler_init();
+ scheduler_init();
trap_init();
init_IRQ(); /* installs simple interrupt wrappers. Starts HZ clock. */
time_init(); /* installs software handler for HZ clock. */
#include <asm/pgalloc.h>
#include <asm/smpboot.h>
+#ifdef CONFIG_SMP
+
/*
* Some notes on x86 processor bugs affecting SMP operation:
*
}
}
+#endif /* CONFIG_SMP */
#include <xeno/delay.h>
#include <xeno/lib.h>
+#ifdef CONFIG_SMP
+
/* Set if we find a B stepping CPU */
static int smp_b_stepping;
smp_done:
;
}
+
+#endif /* CONFIG_SMP */
#include <xeno/config.h>
#include <asm/page.h>
+#ifdef CONFIG_SMP
+
.data
.code16
.globl SYMBOL_NAME(trampoline_end)
SYMBOL_NAME_LABEL(trampoline_end)
+
+#endif /* CONFIG_SMP */
#include <hypervisor-ifs/block.h>
#include <hypervisor-ifs/hypervisor-if.h>
#include <asm-i386/io.h>
-#include <asm/spinlock.h>
+#include <xeno/spinlock.h>
#include <xeno/keyhandler.h>
#include <xeno/interrupt.h>
#include <xeno/segment.h>
#include <linux/config.h>
#include <linux/types.h>
-/*#include <linux/kernel.h>*/
+#include <linux/lib.h>
#include <linux/pci.h>
#include <linux/init.h>
#include <linux/delay.h>
*/
#include <linux/init.h>
-/*#include <linux/kernel.h>*/
+#include <linux/lib.h>
#include <linux/pci.h>
#include <linux/errno.h>
#include <linux/ioport.h>
#ifndef __ASM_APIC_H
#define __ASM_APIC_H
-//#include <linux/config.h>
-//#include <linux/pm.h>
+#include <linux/config.h>
+#include <asm/ptrace.h>
#include <asm/apicdef.h>
#include <asm/system.h>
extern int mp_current_pci_id;
extern unsigned long mp_lapic_addr;
extern int pic_mode;
-extern int using_apic_timer;
#endif
*/
typedef u64 dv_time_t;
+extern int using_apic_timer;
+
#endif /* _ASM_TIME_H_ */
#include <asm/ptrace.h> /* XXX Only used for do_timer which should be moved */
#include <asm/time.h> /* pull in architecture specific time definition */
#include <xeno/types.h>
+#include <hypervisor-ifs/hypervisor-if.h>
/*
* Init time
int netif_rx(struct sk_buff *skb)
{
-#ifdef CONFIG_SMP
unsigned long cpu_mask;
-#endif
int this_cpu = smp_processor_id();
unsigned long flags;
net_vif_t *vif;